package top.roadvast.springboot.design_pattern.singleton;

/**
 * @Author 郭泽鹏
 * @Date 2021/10/19 16:13
 * @Version 1.0
 * @Description
 * 静态内部类（推荐使用）
 * 借助JDK1.5中添加的枚举来实现单例模式。不仅能避免多线程同步问题，而且还能防止反序列化重新创建新的对象。
 */
public class Singleton07 {
    /**
     * 不允许外部类访问
     */
    private Singleton07() {
    }

    /**
     * 静态变量只会在类装载的时候执行一次
     */
    private static class SingletonInstance {
        private static final Singleton07 instance = new Singleton07();
    }

    /**
     * 调用静态内部类
     * @return 本类实例
     */
    public Singleton07 getInstance() {
        return SingletonInstance.instance;
    }
}
